#pragma once
#include <cv.h>
#include <highgui.h>
#include <cxcore.h>
struct MPoint2D {
    double x, y;
	MPoint2D()
	{}
	
	MPoint2D(double _x,double _y)
	{
		x=_x;
		y=_y;
	}
};
struct MPoint3D {
	float x,y,z;
	MPoint3D()
	{
	}
	MPoint3D(float _x,float _y,float _z)
	{
		x=_x;
		y=_y;
		z=_z;
	}
};

struct Dimension
{
	float dimensionx,dimensiony,dimensionz;
};


struct CameraParameters {

    MPoint2D	focal;
    MPoint2D optical_center;
	double k1;
	double k2;
	double p1;
	double p2;
	double k3;


	CameraParameters()
	{
		focal.x=0;
		focal.y=0;
		
		optical_center.x=0;
		optical_center.y=0;
		k1=0.0f;
		k2=0.0f;
		p1=0.0f;
		p2=0.0f;
		k3=0.0f;



	}

	CameraParameters(CvPoint  foc, CvPoint opt_center,double dist1,double dist2,double dist3,double pa1,double pa2)
	{
		focal.x=foc.x;
		focal.y=foc.y;
		
		optical_center.x=opt_center.x;
		optical_center.y=opt_center.y;
		k1=dist1;
		k2=dist2;
		p1=pa1;
		p2=pa2;
		k3=dist3;
	}

	CameraParameters(const CameraParameters &p)
	{
		focal.x=p.focal.x;
		focal.y=p.focal.y;

		optical_center.x=p.optical_center.x;
		optical_center.y=p.optical_center.y;
		k1=p.k1;
		k2=p.k2;
		p1=p.p1;
		p2=p.p2;
		k3=p.k3;
	}
		};

